[#36] Farcaster mini app manifest & SDK setup#279
Conversation
- Add public/.well-known/farcaster.json manifest (accountAssociation placeholder — operator must fill with domain signature) - Install @farcaster/miniapp-wagmi-connector, replace custom connector - Extract isFarcasterMiniApp() into lib/farcaster-detect.ts - Update ConnectWallet to use official connector type "farcasterMiniApp" - Remove custom lib/farcaster-connector.ts (replaced by official package) Existing FarcasterMiniApp component (sdk.actions.ready()) unchanged. Fixes #36 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
project7-interns
left a comment
There was a problem hiding this comment.
T2b Review — APPROVE
Clean migration from custom Farcaster connector to official @farcaster/miniapp-wagmi-connector. Small, focused changeset.
Verified
- Custom 137-line
farcaster-connector.tsreplaced by official package — correct tradeoff isFarcasterMiniApp()detection preserved in newlib/farcaster-detect.tswith dynamic import (server-safe)- Connector type updated from
"farcaster"to"farcasterMiniApp"in both auto-connect and click-connect paths inConnectWallet.tsx farcaster.jsonmanifest structure looks correct (miniapp.version,homeUrl,requiredChains,splashBackgroundColor)accountAssociationplaceholder noted — operator must generate domain signature before Farcaster directory submission- Package lock changes are consistent with adding
@farcaster/miniapp-wagmi-connector@1.1.1
No issues found
LGTM — merge-ready after T2a also approves.
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: REQUEST CHANGES
Summary
The SDK/connector wiring looks aligned with issue #36, but the new Farcaster manifest does not meet the documented icon requirement. As written, the manifest points iconUrl at an .ico favicon instead of a PNG app icon.
Findings
- [medium]
iconUrluses a favicon.ico, not a PNG mini-app icon- File:
public/.well-known/farcaster.json:9 - Suggestion: Point
iconUrlto a valid PNG asset that satisfies the Farcaster manifest requirements, or add the required PNG asset and reference that instead.
- File:
Decision
Requesting changes because the manifest is part of the acceptance criteria for issue #36, and the current iconUrl does not match Farcaster's published manifest requirements.
Switch iconUrl from favicon.ico to icon.png (Farcaster manifest requires PNG). Add generated 200x200 PNG with PlotLink branding (green P on dark background). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
project7-interns
left a comment
There was a problem hiding this comment.
Verdict: APPROVE
Summary
The manifest issue is fixed: iconUrl now points to a PNG asset, and the required lint-and-typecheck workflow is passing. The PR now satisfies issue #36's manifest and SDK setup requirements.
Findings
- [resolved]
iconUrlnow references a valid PNG app icon- File:
public/.well-known/farcaster.json:9 - Suggestion: None.
- File:
Decision
Approving because the only blocking issue from my prior review has been addressed and CI passed.
Summary
Fixes #36
public/.well-known/farcaster.jsonwith app metadata (name, homeUrl, splashBackgroundColor, requiredChains).accountAssociationfields are placeholder — operator must generate the domain signature via Farcaster developer tools.@farcaster/miniapp-wagmi-connectorand replaced the customlib/farcaster-connector.tswith the officialfarcasterMiniApp()connector in wagmi config.isFarcasterMiniApp()intolib/farcaster-detect.ts(used by ConnectWallet for auto-connect logic)."farcaster"to"farcasterMiniApp"to match official package.Existing
FarcasterMiniAppcomponent (callssdk.actions.ready()) unchanged — already working.Test plan
npm run typecheckpassesnpm run lintpasses (no new warnings)/.well-known/farcaster.jsonis served at the correct pathfarcasterMiniAppconnector workssdk.actions.ready()still called on mount in mini app contextaccountAssociationbefore submitting to Farcaster directory🤖 Generated with Claude Code